package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import modelo.CuentaView;
import controlador.Banco;

public class ListadoCuentas extends Listado {
	public ListadoCuentas(Banco banco) {
		super(banco);
		initListado();
	}

	private void initListado() {
		try {
			setTitle("Listado de Cuentas");

			JTable tabla = new JTable(new DefaultTableModel(new Object[] {
					"Nro de Cuenta", "DNI Cliente", "Saldo", "Estado" }, 0));
			setTabla(tabla);

			llenarTablaCuentas(getBanco().getCuentas(), tabla);
			tabla.setEnabled(false);

			JScrollPane scrollPane = new JScrollPane(tabla);
			setScrollPane(scrollPane);

			JButton botonSalir = new JButton();
			botonSalir.setText("Salir");
			botonSalir.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					dispose();
				}
			});

			getPanel().add(scrollPane);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void llenarTablaCuentas(Vector<CuentaView> cuentas, JTable tabla) {
		DefaultTableModel modeloVista = (DefaultTableModel) tabla.getModel();

		for (int i = 0; i < cuentas.size(); i++) {
			modeloVista.addRow(new Object[] {
					Integer.toString(cuentas.elementAt(i).getNro()),
					Long.toString(cuentas.elementAt(i).getCliente().getDni()),
					Float.toString(cuentas.elementAt(i).getSaldo()),
					estadoCuenta(cuentas.elementAt(i).isEstado()) });
		}
	}

	private String estadoCuenta(boolean estado) {
		if (estado == true) {
			return "Abierta";
		}
		return "Cerrada";
	}
}